Script for using cypherpunk-style remailers from Eudora.
Docs by Jonathan Rochkind <jrochkin@cs.oberlin.edu>, who is probably the guy you should contact with bugs.
ChainMail is a work in progress, and doesn't have all the features it eventually will, and might contain some bugs. It's still quite useable in its present state, but use it at your own risk.
An HTML version of this document is available at http://www.oberlin.edu/~brchkind/ChainMail/docs.html.
Contents
• What you need to use ChainMail
• What ChainMail does
• How to use ChainMail
• Preferences and Settings
• GetKeys script
• Features planned for the future
• Who wrote this thing?
What you need to use ChainMail:
• A version of Eudora that supports applescript. (1.4.3, and 2.1 do for sure).
• A version of MacPGP that supports applescript. (2.6ui, 2.3v1.1, Viacrypt 2.7)
• Drop•TextBreak
• A bunch of applescript scripting additions (OSAXen). These are all available from gaea.kgs.ukans.edu in the applescript directory.
• the File IO and Regular Expression part of ScriptTools 1.3.1.
• MenuEvents 1.1.2.
• TCP/IP Scripting Addition 1.1.2.
• DialogRunner 1.0.
• The "current date in seconds" part of the GTQ Scripting Library.
To use the cypherpunks remailers in the most secure fashion, you've got to route your message through several of them in a chain, encrypting each link of the chain inside the next. This is a pain to do manually. ChainMail will take some mail you've written in Eudora, and do all the encryption that needs to be done, and put all the proper commands in for the remailers. It uses info from the remailer info/reliability list that Raph Levien maintains, currently accessible by fingering remailer-info@kiwi.cs.berkeley.edu. Depending on how the user sets the preferences, the script can either finger this site (or another specified site) for the info, or use a file stored on disk, where you've saved the results of fingering Raph's list at an earlier point.
How to use ChainMail:
First compose the message you wish to send in a Eudora mail window. Then launch the ChainMail script, making sure the message you wish to operate on is in the front most Eudora window. The most convenient way to do this is probably by putting the script in the Apple Menu, or by putting it in an OtherMenu or NowMenus menu.
You will see a dialog box. Here is an explanation of what each field does.
"To:"
This is the final recipient of your mail. It defaults to whatever you specified in the "To:" field of the Eudora window, but you can change it if you want.
"Chain:"
This is the important one. You have to specify the remailers you want your message to go through, using their one-word names from Raph's list. Put a semi-colon in between each name. So an example Chain entry might be "portal;c2;extropia".
"Encrypt To:"
If you want the message to be encrypted to it's final recipient, so the person has to decrypt it with PGP to read it, check the checkbox to the left of "Encrypt To:". In the box to the right of "Encrypt To:", enter a string uniquely identifiying the key you want to use to encrypt the message. Generally the email address or name of your correspondent will work. The email address you entered in the "To:" field of Eudora is placed here as a default. But, again, it won't actually be used unless you check the checkbox.
"Sign From:"
If you wish to sign the message, check the checkbox to the left of this label. In the box to the right, enter a string uniquely identifying the key you want to use to sign. Generally if you want to sign the message at all, you probably won't want to use your default key, but a different pseudonymous key.
Settings and Preferences
And what different preferences mean.
You can access the preferences dialog box by pressing the "preferences" button in the main dialog box. The preferences dialog box allows you set a variety of preferences governing the operation of the script.
• Get Remailer List
Chainmail needs a list of remailer information. You can set it to either get this list by fingering, or from a file on disk. You might want to get the list exclusively from a file on disk, because you don't have a MacTCP connection to the internet, so the script won't be able to finger the info site directly.
[Also, please see bug noted below.]
• Time limit for old lists by finger
You might not want ChainMail to finger for the Info List every single time you use it, because fingering can be slow. You might want it to only finger occasionally, and keep old lists around for a while. If you set this time limit to something greater then zero, it will write fingered lists to disk, and use these on-disk lists until they are older then the time limit you specify, at which point a new list will be obtained via finger. You can use decimal-fractional values if you like.
When this setting is non-zero, lists obtained from finger are stored in your Preferences folder as "ChainMail Info List", so they can be re-used.
This setting has no effect if you set ChainMail to get remailer lists from disk, instead of by fingering.
• Address to finger for remailer list
If you have set ChainMail to get remailer lists by fingering, then this is the address it will finger.
• "Text wrap" checkbox
When this box is checked, your mail will be wrapped to 80 columns with Drop•TextBreak before anything else is done to it.
• "Turn off Eudora sig" checkbox
By checking this box, you can instruct the script to turn off the signature on your Eudora message, to prevent your Eudora sig from being appended to the message. Which could be damaging to your anonymity.
• Default Behavior
You can set default entries for all of the fields and checkboxes in the main "Remail" dialog. For instance, if you generally sign your messages with a key named "The Mad Fish", you might want to have the "Sign From:" box checked, and "The Mad Fish" written in the "Sign From:" textbox, as a default.
•••Note Bug•••: Every time you access the preferences dialog, "get list by finger" will appear to be set, even if you had actually had "get list from file" set. You need to click on the "get list from file" radio button before hitting "OK" if you want to preserve this setting. This is due to a bug in selecting radio buttons to be displayed, in DialogRunner 1.0. If anyone knows of a newer version that fixes the bug, please tell me
Included GetKeys script
This script will finger a specified site, and add all keys in result of the finger to your MacPGP keyring. It comes set with a default site, that worked when I released the thing, but you set a different address too.
Planned Features For the Future:
• The user should be able to enter a number in the "Chain:" field, and have the script create a chain of that length from the remailers, like the unix "premail" does.
• The user should be able to enter a usenet group as the final recipient of the message, and the script will make sure the final remailer on the chain is capable of posting to usenet, and put the proper syntax in to make that happen.
Who Wrote This Thing Anyway?:
Jonathan Rochkind <jrochkin@cs.oberlin.edu> wrote these docs, and was the last person to work on the script. He modified and added to the original script by Richard Hodges <hodges@cnmat.berkeley.edu>, who himself based the script on the PGP Eudora scripts by Gregory S. Combs <grgcombs@mail.utexas.edu>. Jack Repenning <jackr@dblues.wpd.sgi.com> wrote a procedure or two. And sundry other scripts by other authors were looked at by some of the above people to figure out how to do what needed to be done.
Jonathan Rochkind is probably the guy you should talk to with problems, bugs or suggestions (which are welcome), and Richard Hodges would be a good bet too.